package com.cj.controller;
import com.cj.po.DClass;
import com.cj.po.PageInfo;
import com.cj.po.Visitor;
import com.cj.service.VisitorService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;
import java.util.Date;
import java.util.List;

/**
 * 班级控制器类
 */
@Controller
public class VisitorController {

    // 依赖注入
    @Autowired
    private VisitorService visitorService; // 修改为小写 VisitorService

    /**
     * 分页查询
     * pageIndex 当前页码
     * pageSize  显示条数
     */
    @RequestMapping(value = "/findVisitor")
    public String findVisitor(String v_name, String v_phone,String v_dormitoryid, String v_dormbuilding, Date create_time,
                            Integer pageIndex, Integer pageSize, Model model) {

        // 获取分页信息
        PageInfo<Visitor> pi = visitorService.findPageInfo(v_name, v_phone,v_dormitoryid, v_dormbuilding,  create_time,
                pageIndex, pageSize);
        model.addAttribute("vi", pi);
        model.addAttribute("v_name",  v_name);
        return "Visitor_list"; // 返回视图
    }
    @RequestMapping(value = "/exportvisitorlist", method = RequestMethod.POST)
    @ResponseBody
    public List<Visitor> exportVisitor() {
        // 获取所有访客信息
        List<Visitor> visitorList = visitorService.getAll();
        return visitorList;
    }
    //    添加访客信息
    @RequestMapping(value = "/addVisitor", method = RequestMethod.POST)
    @ResponseBody
    public String addVisitor(@RequestBody Visitor Visitor) { // 修改为 Visitor
        int result = visitorService.addVisitor(Visitor); // 添加访客
        return "Visitor_list"; // 返回访客列表视图
    }
//    删除访客信息
    @RequestMapping("/deleteVisitor")
    @ResponseBody
    public String deleteVisitor(Integer v_id) { // 修改参数为 v_id
        int result = visitorService.deleteVisitor(v_id); // 删除访客
        return "Visitor_list"; // 返回访客列表视图
    }

//    修改访客信息
    @RequestMapping(value = "/updateVisitor", method = RequestMethod.POST)
    public String updateVisitor(Visitor Visitor) { // 修改为 Visitor
        int result = visitorService.updateVisitor(Visitor); // 更新访客信息
        return "redirect:/findVisitor"; // 跳转到访客列表
    }
//    根据ID修改访客信息
    @RequestMapping("/findVisitorById")
    public String findVisitorById(Integer v_id, HttpSession session) { // 修改为 v_id
        Visitor Visitor = visitorService.findVisitorById(v_id); // 查找访客信息
        session.setAttribute("Visitor", Visitor); // 将访客信息存入会话
        return "Visitor_edit"; // 返回访客编辑页面
    }
}
